fesetexceptflag (C++11)

设置浮点异常标志

Attempts to set the exceptions indicated by excepts with the states stored in the object pointed by flagp.

如果成功,则函数会改变当前 浮点环境 的状态,设置请求的异常标志,但不会真正 触发 异常。

调用这个函数的程序需要确保在本次函数调用时,编译指示 FENV_ACCESS 已经开启。

指向 对象的指针,用来表示浮点异常。flagp 指向的对象应该在之前被函数 fegetexceptflag 通过参数 excepts 已经设置了值。

位掩码值:支持的任何浮点异常数字的组合(按位 OR):

特定的库实现可能会支持附加的 浮点异常 值(它们对应的宏同样以 FE_ 开头的宏)。

C99

C++11

至少上面所有的宏值都定义在 中(即使实现不支持)。

如果函数成功 set the flags in the (or if excepts was zero),则返回 0 ,否则返回非 0 。

每个线程都保持着分离的、拥有自己状态的 浮点环境 。产生一个新线程就复制当前状态。[ 这个适用于 C11 和 C++11 的实现 ]

不抛出异常的保证:这个函数从不抛出异常。
注意 C 浮点环境异常 不是 C++ 异常,因此不能被 try/catch 块捕捉。
调用这个函数的时候,如果编译指示 FENV_ACCESS 关闭的话,则会导致未定义行为。

函数 描述
获取浮点异常标志 (函数)
feraiseexcept 触发浮点异常 (函数)